// #include <stdio.h>
// #include <stdlib.h>
// #include <limits.h>
//
// // 计算三个数中的最小值
// int min(int a, int b, int c) {
//     if (a <= b && a <= c) return a;
//     if (b <= a && b <= c) return b;
//     return c;
// }
//
// // 计算三个数中的最大值
// int max(int a, int b, int c) {
//     if (a >= b && a >= c) return a;
//     if (b >= a && b >= c) return b;
//     return c;
// }
//
// // 计算三元组的距离
// int computeDistance(int a, int b, int c) {
//     return abs(a - b) + abs(b - c) + abs(c - a);
// }
//
// // 寻找最小距离的三元组
// int findMinDistance(int S1[], int n1, int S2[], int n2, int S3[], int n3) {
//     int i = 0, j = 0, k = 0;
//     int min_distance = INT_MAX;
//
//     while (i < n1 && j < n2 && k < n3) {
//         int a = S1[i], b = S2[j], c = S3[k];
//         int current_distance = computeDistance(a, b, c);
//
//         // 更新最小距离
//         if (current_distance < min_distance) {
//             min_distance = current_distance;
//         }
//
//         // 移动指向最小元素的指针
//         if (a <= b && a <= c) {
//             i++;
//         } else if (b <= a && b <= c) {
//             j++;
//         } else {
//             k++;
//         }
//     }
//
//     return min_distance;
// }
//
// int main() {
//     // 示例输入
//     int S1[] = {-1, 0, 9};
//     int S2[] = {-25, -10, 10, 11};
//     int S3[] = {2, 9, 17, 30, 41};
//     int n1 = sizeof(S1) / sizeof(S1[0]);
//     int n2 = sizeof(S2) / sizeof(S2[0]);
//     int n3 = sizeof(S3) / sizeof(S3[0]);
//
//     int result = findMinDistance(S1, n1, S2, n2, S3, n3);
//     printf("distance of min: %d\n", result); // 输出应为 2
//
//     return 0;
// }